Когда код становится нечитаемым, проект сложно поддерживать, а новые фичи ломают старые — скорее всего, нарушены принципы архитектуры. Один из самых мощных наборов таких принципов — SOLID.
Каждый класс должен отвечать только за одну вещь.
Пример: если класс парсит JSON и пишет в базу — это две ответственности, значит, пора разбить.
Код открыт для расширения, но закрыт для изменения.
Пример: добавление новой фичи не должно требовать переписывания старого кода — лучше через интерфейс или абстракцию.
Подклассы должны работать вместо родительских, не ломая логику.
Пример: если унаследованный класс внезапно бросает исключения или ведёт себя иначе — нарушен LSP.
Много маленьких интерфейсов лучше одного большого.
Пример: не заставляйте класс реализовывать методы, которые ему не нужны.
Зависимости строятся на абстракциях, а не на конкретных реализациях.
Пример: не завязывайтесь на конкретный класс базы данных — работайте через интерфейс, который можно заменить.
SOLID — это основа хорошей архитектуры, которую стоит освоить как можно раньше.
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы ответил 2 — это ловушка
def func(a, b):
res = a + b
res = func(1, 1)
print(res)
На первый взгляд кажется, что res = 2. Но нет.
1. Функция func(a, b) складывает a + b и сохраняет в переменную res внутри функции.
2. Но! Функция ничего не возвращает. В Python по умолчанию любая функция без return возвращает None.
3. Следовательно, res = func(1, 1) присваивает None.
4. На экран выводится None.
📎 Пост с задачей
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Если вы начинаете учить JavaScript или уже пишете, но забываете синтаксис RegExp, методы массива или Date, держите в закладках — шпаргалка от Cheatography.
PDF на 2 страницы: удобно распечатать, удобно держать в открытой вкладке.
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🥹 Выбираем работу мечты по вакансии
В карточках рассказали, на что стоит обращать внимание в вакансиях — если вы это нашли, значит, отправить отклик точно стоит.
✅ Еще больше грин-флагов — в нашей статье: https://proglib.io/sh/TycptNOYvf
Proglib Academy #оффер_мечты
В карточках рассказали, на что стоит обращать внимание в вакансиях — если вы это нашли, значит, отправить отклик точно стоит.
Proglib Academy #оффер_мечты
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Если хотите разобраться, как алгоритмы поиска в глубину и поиска в ширину работают на практике, то вот минимальный пример, который покажет разницу.
graph = {
'A': ['B', 'C'],
'B': ['D', 'E'],
'C': ['F'],
'D': [], 'E': [], 'F': []
}
def dfs(node, visited=set()):
if node in visited: return
print(node)
visited.add(node)
for neighbor in graph[node]:
dfs(neighbor, visited)
def bfs(start):
queue = [start]
visited = set()
while queue:
node = queue.pop(0)
if node in visited: continue
print(node)
visited.add(node)
queue += graph[node]
— dfs проходит глубоко: A → B → D → E → C → F
— bfs — по уровням: A → B → C → D → E → F
— Обе функции показывают порядок обхода графа
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🧐 Как устроены AI-модели для работы с изображениями
На схеме выше — карта различных подходов к пониманию изображений искусственным интеллектом. Давайте разберемся, что здесь к чему.
📍Ось Recognition: чем левее модель, тем хуже она распознает объекты
📍Ось Localization: чем левее модель, тем хуже она распознает местоположние объекта
А теперь напальцах моделях:
• SAM — отлично знают ГДЕ, но не знают ЧТО
• SEEM/DINO — неплохо определяют положение, базово распознают объекты
• CLIP/BLIP — знают ЧТО видят, но не всегда точно ГДЕ это находится
• RAM — универсальный солдат, который знает и ЧТО, и ГДЕ
🔗 Подробнее об универсальном солдате — в статье
🔵 Чтобы получить оффер-мечты в Data Science, забирайте наш курс → «Математика для Data Science»
Proglib Academy #буст
На схеме выше — карта различных подходов к пониманию изображений искусственным интеллектом. Давайте разберемся, что здесь к чему.
📍Ось Recognition: чем левее модель, тем хуже она распознает объекты
📍Ось Localization: чем левее модель, тем хуже она распознает местоположние объекта
А теперь на
• SAM — отлично знают ГДЕ, но не знают ЧТО
• SEEM/DINO — неплохо определяют положение, базово распознают объекты
• CLIP/BLIP — знают ЧТО видят, но не всегда точно ГДЕ это находится
• RAM — универсальный солдат, который знает и ЧТО, и ГДЕ
🔗 Подробнее об универсальном солдате — в статье
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🧠 Почему в одной компании пишут в Notion, а в другой делают PPT на 47 слайдов
Разберёмся, как культура в IT-компаниях меняет твою работу (и психику).
🔹 1. Кремниевая долина: «move fast and break things»
— Минимум процессов, максимум доверия.
— Упор на результат, а не отчёты.
— Документация — в Notion, а не в .docx с подписями.
— Худи, лаптоп, 100% remote — и никто не следит за часами.
👉 Типичный фидбэк на факап: «Что выучил? Отлично. Продолжай.»
🔹 2. Российские корпорации: «сначала согласуй, потом сделай»
— Каждый чих — в почте с копией начальника.
— Презентации на 40 слайдов «для визибилити».
— Контроль вместо доверия.
— Важнее выглядеть занятым, чем что-то реально сделать.
👉 Фидбэк: «А где ты согласовал это с департаментом методологии?»
Proglib Academy #развлекалово
Разберёмся, как культура в IT-компаниях меняет твою работу (и психику).
🔹 1. Кремниевая долина: «move fast and break things»
— Минимум процессов, максимум доверия.
— Упор на результат, а не отчёты.
— Документация — в Notion, а не в .docx с подписями.
— Худи, лаптоп, 100% remote — и никто не следит за часами.
👉 Типичный фидбэк на факап: «Что выучил? Отлично. Продолжай.»
🔹 2. Российские корпорации: «сначала согласуй, потом сделай»
— Каждый чих — в почте с копией начальника.
— Презентации на 40 слайдов «для визибилити».
— Контроль вместо доверия.
— Важнее выглядеть занятым, чем что-то реально сделать.
👉 Фидбэк: «А где ты согласовал это с департаментом методологии?»
Proglib Academy #развлекалово
🏗 Архитектурное ревью: как не утонуть в хаосе большого проекта
Вы работаете над зрелым продуктом, где десятки команд, множество сервисов и решений. Всё взаимосвязано, и любая ошибка дорого обходится. Значит, без архитектурного ревью — никуда.
➡️ В статье
📍 Когда приходит время для архитектурного ревью
📍 Какие вопросы стоит задавать, чтобы не собирать техдолг
📍 Как избежать дублирования и держать архитектуру под контролем
📍 Что помогает масштабировать решения и соблюдать стратегию
📍 Почему метрики и наблюдаемость — часть архитектуры, а не бонус
🔗 Читать на Proglib
Proglib Academy #буст
Вы работаете над зрелым продуктом, где десятки команд, множество сервисов и решений. Всё взаимосвязано, и любая ошибка дорого обходится. Значит, без архитектурного ревью — никуда.
🔗 Читать на Proglib
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Когда Вы пишете SQL-запрос, может показаться, что всё выполняется сверху вниз — SELECT, FROM, WHERE…
Но это не так. Под капотом запрос исполняется в совершенно другом порядке:
FROM — сначала выбирается основная таблица
JOIN — затем к ней присоединяются другие таблицы
ON — указывается, как именно таблицы связываются
WHERE — происходит фильтрация строк до группировки
GROUP BY — строки группируются по указанному полю
HAVING — фильтрация уже сгруппированных данных
SELECT — выбираются нужные столбцы
ORDER BY — сортировка результата
LIMIT — ограничение количества строк
Обратите внимание: оператор SELECT выполняется почти в самом конце, а WHERE работает до GROUP BY. Именно поэтому нельзя ссылаться в SELECT на столбцы, которых нет в GROUP BY или агрегатах.
Proglib Academy #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Лаборатория Касперского ищет стажёра Data Scientist без опыта — идеальный шанс войти в ML и не перегореть. Разбираем, что вам пригодится:
▫️ Понимание базовых библиотек: pandas, numpy, matplotlib, sklearn, PyTorch.
▫️ Умение работать с данными, строить графики, обрабатывать текст.
▫️ Знание SQL и NoSQL: SELECT, JOIN, базовые запросы.
▫️ Умение получать и обрабатывать данные.
▫️ Готовность вручную размечать данные и строить пайплайны.
▫️ Настройка prompt-инструкций и генерация датасетов.
▫️ Обработка текстов, знание метрик и моделей NLP.
▫️ Подготовка презентаций, объяснение результатов простыми словами.
— Языковая грамотность и английский не ниже B1.
— Знание других языков — большой бонус.
— Аналитический склад ума, усидчивость и внимание к деталям.
Идеальный вариант, если вы хотите попасть в AI-разработку с фокусом на тексты, метрики и масштабируемые ML-решения.
Proglib Academy #оффер_мечты
Please open Telegram to view this post
VIEW IN TELEGRAM